Header image  

 

MATLAB

 
  HOME ::
   
 
3 Labeling mit MATLAB

>> Image=imread('etest.bmp'); % Bild einlesen, etest.bmp ist ein Graustufenbild
>> Theshold=graythresh( Image ); % der Shwellenwert manuell festlegen
>> Image_BW=im2bw(Image,Theshold); % Wandelt Grauwertbild in Binärbild.
>> figure,imshow(Image_BW); % Anzeige der Matrix Image_BW als Bild in neuer Figure.
>> print(1,'-dbmp','Image_BW.bmp'); % Speiche das Bild
>> Image_BW_medfilt=medfilt2(Image_BW); % Medianfilter
>> figure,imshow(Image_BW_medfilt);
>> print(1,'-dbmp','Image_BW_medfilt.bmp');
>> pa = edge(Image_BW_medfilt,'sobel'); % Sobel-Operator
>> figure,imshow(pa);
>> print(1,'-dbmp','pa.bmp');
>> SE=strel('square',3); % Erzeuge ein quadratförmige Strukturelement
>> BW=imdilate(pa,SE); % Dilatation
>> figure,imshow(BW);
>> print(1,'-dbmp','BW.bmp');
>> BWfill=imfill(BW,'holes'); % Fülle alle Löcher
>> figure,imshow(BWfill);
>> print(1,'-dbmp','BWfill.bmp');
>> [labeled,numObjects] = bwlabel(BWfill,4); % Erzeugt Matrix labeled der Größe BWfill, wobei alle zusammenhängenden Pixel in BWfill eine einheitliche Nummer in labeled erhalten. Die Anzahl der Objekte wird in der Variable numObjects gespeichert.

>> RGB_label=label2rgb(labeled,@spring,'c','shuffle'); % Weise verschiedene Labels Pseudofarben zu
>> figure,imshow(RGB_label);
>> print(1,'-dbmp','RGB_label.bmp');
>> chrdata = regionprops(labeled,'all'); % Erzeugt eine Struktur chrdata, f¨¹r jedes Objekt in labeled, in der die gewünschten Merkmale gespeichert werden.
>> Area = [chrdata.Area];
>> figure,hist(Area,20);
>> print(1,'-dbmp','hist_Area.bmp');
>> idx = find(Area <5000)
>> BWa = ismember(labeled,idx); % entfernet die Werte des Areals, welche >=5000 sind
>> figure,imshow(BWa)
>> print(1,'-dbmp','BWa.bmp');

>> ConvexArea= [chrdata.ConvexArea];
>> mean(ConvexArea);
>> figure,hist(ConvexArea,20);
>> print(1,'-dbmp','hist_ConvexArea.bmp');
>> idx = find(ConvexArea<10000);
>> BWc = ismember(labeled,idx);
>> figure,imshow(BWc)
>> print(1,'-dbmp','BWc.bmp');

>> EquivDiameter= [chrdata.EquivDiameter];
>> mean(EquivDiameter);
>> figure,hist(EquivDiameter,20);
>> print(1,'-dbmp','hist_EquivDiameter.bmp');
>> idx = find(EquivDiameter<=60);
>> BWe = ismember(labeled,idx);
>> figure,imshow(BWe)
>> print(1,'-dbmp','BWe.bmp');

>> Solidity= [chrdata.Solidity];
>> mean(Solidity);
>> figure,hist(Solidity,20);
>> print(1,'-dbmp','hist_Solidity.bmp');
>> idx = find(Solidity>=0.4);
>> BWs = ismember(labeled,idx);
>> figure,imshow(BWs)
>> print(1,'-dbmp','BWs.bmp');

>> MajorAxisLength= [chrdata. MajorAxisLength];
>> mean( MajorAxisLength)
>> figure,hist(MajorAxisLength,20);
>> print(1,'-dbmp','hist_MajorAxisLength.bmp');
>> idx = find(MajorAxisLength<=125);
>> BWm = ismember(labeled,idx);
>> figure,imshow(BWm)
>> print(1,'-dbmp','BWm.bmp');

>> MinorAxisLength= [chrdata. MinorAxisLength];
>> mean( MinorAxisLength)
>> figure,hist( MinorAxisLength,20);
>> print(1,'-dbmp','hist_MinorAxisLength.bmp');
>> idx = find(MinorAxisLength<=80);
>> BWmi = ismember(labeled,idx);
>> figure,imshow(BWmi)
>> print(1,'-dbmp','BWmi.bmp');